options(warn = -1)
options(repr.plot.width=15, repr.plot.height=9)
Sys.setlocale(category = "LC_ALL", locale = "ko_KR.UTF-8")
#install.packages("extrafont")
PROJECT01 <- read.csv("./Data/CARD_SUBWAY_MONTH_2020.CSV", row.names = NULL,fileEncoding = "EUC-KR")
colnames(PROJECT01) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자")
PROJECT02 <- read.csv("./Data/CARD_SUBWAY_MONTH_2021.CSV", row.names = NULL,fileEncoding = "EUC-KR")
colnames(PROJECT02) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT02 <- PROJECT02[-length(PROJECT02)]
PROJECT03 <- read.csv("./Data/CARD_SUBWAY_MONTH_2022.CSV", row.names = NULL,fileEncoding = "EUC-KR")
colnames(PROJECT03) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT03 <- PROJECT03[-length(PROJECT03)]
PROJECT04 <- read.csv("./Data/CARD_SUBWAY_MONTH_202301.CSV", row.names = NULL)
colnames(PROJECT04) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT04 <- PROJECT04[-length(PROJECT04)]
PROJECT05 <- read.csv("./Data/CARD_SUBWAY_MONTH_202302.CSV", row.names = NULL)
colnames(PROJECT05) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT05 <- PROJECT05[-length(PROJECT05)]
PROJECT06 <- read.csv("./Data/CARD_SUBWAY_MONTH_202303.CSV", row.names = NULL)
colnames(PROJECT06) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT06 <- PROJECT06[-length(PROJECT06)]
PROJECT07 <- read.csv("./Data/CARD_SUBWAY_MONTH_202304.CSV", row.names = NULL)
colnames(PROJECT07) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT07 <- PROJECT07[-length(PROJECT07)]
PROJECT08 <- read.csv("./Data/CARD_SUBWAY_MONTH_202305.CSV", row.names = NULL)
colnames(PROJECT08) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT08 <- PROJECT08[-length(PROJECT08)]
PROJECT09 <- read.csv("./Data/CARD_SUBWAY_MONTH_202306.CSV", row.names = NULL)
colnames(PROJECT09) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT09 <- PROJECT09[-length(PROJECT09)]
PROJECT10 <- read.csv("./Data/CARD_SUBWAY_MONTH_202307.CSV", row.names = NULL)
colnames(PROJECT10) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT10 <- PROJECT10[-length(PROJECT10)]
PROJECT11 <- read.csv("./Data/CARD_SUBWAY_MONTH_202308.CSV", row.names = NULL)
colnames(PROJECT11) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT11 <- PROJECT11[-length(PROJECT11)]
PROJECT12 <- read.csv("./Data/CARD_SUBWAY_MONTH_202309.CSV", row.names = NULL)
colnames(PROJECT12) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT12 <- PROJECT12[-length(PROJECT12)]
PROJECT13 <- read.csv("./Data/CARD_SUBWAY_MONTH_202310.CSV", row.names = NULL)
colnames(PROJECT13) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT13 <- PROJECT13[-length(PROJECT13)]
PROJECT14 <- read.csv("./Data/CARD_SUBWAY_MONTH_202311.CSV", row.names = NULL)
colnames(PROJECT14) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT14 <- PROJECT14[-length(PROJECT14)]
PROJECT15 <- read.csv("./Data/CARD_SUBWAY_MONTH_202312.CSV", row.names = NULL)
colnames(PROJECT15) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT15 <- PROJECT15[-length(PROJECT15)]
PROJECT16 <- read.csv("./Data/CARD_SUBWAY_MONTH_202401.CSV", row.names = NULL)
colnames(PROJECT16) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT16 <- PROJECT16[-length(PROJECT16)]
PROJECT17 <- read.csv("./Data/CARD_SUBWAY_MONTH_202402.CSV", row.names = NULL)
colnames(PROJECT17) <- c("사용일자","노선명","역명","승차총승객수","하차총승객수","등록일자","ㅇ")
PROJECT17 <- PROJECT17[-length(PROJECT17)]
project <- rbind(PROJECT01,PROJECT02,PROJECT03,PROJECT04,PROJECT05,PROJECT06,PROJECT07,PROJECT08,PROJECT09,PROJECT10
,PROJECT11,PROJECT12,PROJECT13,PROJECT14,PROJECT15,PROJECT16,PROJECT17)
write.csv(project,"./Data/2020_202402_CARD_SUBWAY_MONTH",row.names=F)
str(project)
summary(project$`승차총승객수`)
summary(project$`하차총승객수`)
project[project$노선명 == "중앙선", ]
sum_on <- sum(project[,4])
sum_out <- sum(project[,5])
library(dplyr)
project_re <- project
project_re$노선명[project_re$노선명 == "9호선2~3단계"] <- "9호선"
project_on <- aggregate(승차총승객수~노선명,project_re,sum)
project_out <- aggregate(하차총승객수~노선명,project_re,sum)
projectsum_on <- sum(project_on[,2])
projectsum_out <- sum(project_out[,2])
project_on$승객비율 <- project_on$`승차총승객수`/sum(project_on$`승차총승객수`)*100
project_on <- arrange(project_on,desc(project_on$`승객비율`))
project_out$승객비율 <- project_out$`하차총승객수`/sum(project_out$`하차총승객수`)*100
project_out <- arrange(project_out,desc(project_out$`승객비율`))
new <- data.frame(노선명 = "기타",
승차총승객수 = sum(project_on$`승차총승객수`[15:nrow(project_on)]),
승객비율 = sum(project_on$`승차총승객수`[15:nrow(project_on)])/sum(project_on$`승차총승객수`)*100)
project_on <- project_on[-(15:nrow(project_on)), ]
project_on <- rbind(project_on,new)
new1 <- data.frame(노선명 = "기타",
하차총승객수 = sum(project_out$`하차총승객수`[15:nrow(project_out)]),
승객비율 = sum(project_out$`하차총승객수`[15:nrow(project_out)])/sum(project_out$`하차총승객수`)*100)
project_out <- project_out[-(15:nrow(project_out)), ]
project_out <- rbind(project_out,new1)
cols <-ifelse(project_on$`노선명` %in% c("1호선", "경부선"), "darkblue",
ifelse(project_on$`노선명` == "2호선", "green",
ifelse(project_on$`노선명` == "3호선", "orange",
ifelse(project_on$`노선명` == "4호선", "#63cef5",
ifelse(project_on$`노선명` == "5호선", "purple",
ifelse(project_on$`노선명` == "6호선", "brown",
ifelse(project_on$`노선명` == "7호선", "darkgreen",
ifelse(project_on$`노선명` == "8호선", "pink",
ifelse(project_on$`노선명` == "9호선" | project_on$`노선명` == "9호선2~3단계", "tan",
ifelse(project_on$`노선명` == "경강선", "skyblue",
ifelse(project_on$`노선명`=="수인선"| project_on$`노선명`=="분당선","yellow",
ifelse(project_on$`노선명`=="공항철도 1호선","#37b0e1",
ifelse(project_on$`노선명`=="안산선","cyan","black")))))))))))))
cols1 <-ifelse(project_out$`노선명` %in% c("1호선", "경부선"), "darkblue",
ifelse(project_out$`노선명` == "2호선", "green",
ifelse(project_out$`노선명` == "3호선", "orange",
ifelse(project_out$`노선명` == "4호선", "#63cef5",
ifelse(project_out$`노선명` == "5호선", "purple",
ifelse(project_out$`노선명` == "6호선", "brown",
ifelse(project_out$`노선명` == "7호선", "darkgreen",
ifelse(project_out$`노선명` == "8호선", "pink",
ifelse(project_out$`노선명` == "9호선" | project_on$`노선명` == "9호선2~3단계", "tan",
ifelse(project_out$`노선명` == "경강선", "skyblue",
ifelse(project_out$`노선명`=="수인선"| project_on$`노선명`=="분당선","yellow",
ifelse(project_out$`노선명`=="공항철도 1호선","#37b0e1",
ifelse(project_out$`노선명`=="안산선","cyan","black")))))))))))))
# plotrix 패키지 로드
library(plotrix)
label <- paste(project_on$`노선명`,"\n",round(project_on$`승객비율`,2),'%')
label1 <- paste(project_out$`노선명`,"\n",round(project_out$`승객비율`,2),'%')
# 3D 파이 차트 그리기
par(family = "AppleGothic", bg = ' white')
par(mfrow=c(1,2))
pie3D(project_on$`승객비율`, main = "2020~202402 서울 노선별 승차승객비율",
col= cols,
labels = ifelse(project_on$`승객비율`>1,label,project_on$`노선명`),
labelcex = 0.9,
radius = 0.9,explode = 0.05)
pie3D(project_out$`승객비율`, main = "2020~202402 서울 노선별 하차승객비율",
col= cols1,
labels = ifelse(project_out$`승객비율`>1,label1,project_out$`노선명`),
labelcex = 0.9,
radius = 0.9,explode = 0.05)
project_subway_on <- project[,c(3,4,5)]
project_subway_on <- aggregate(.~역명,project_subway_on,sum)
project_subway_on <- arrange(project_subway_on,desc(승차총승객수))
project_subway_on1 <- arrange(project_subway_on,desc(하차총승객수))
project_subway <- arrange(project_subway_on,desc(승차총승객수))[1:5,1]
project_subway_out <- arrange(project_subway_on,desc(하차총승객수))[1:5,1]
top41 <- c()
for(i in 1:length(project_subway)){
topTemp1 <- apply(subset(project,역명 == project_subway[i] )[,4:5],2,sum)
top41 <- cbind(top41,topTemp1)
}
colnames(top41) <- project_subway
top41
par(mfrow=c(1,2))
par(family = "AppleGothic", bg = 'white')
options(scipen = 100)
barplot(top41,ylim=c(0,300000000),main="2020~202402 승차횟수가 높은 5개의 역의 정보",legend.text = T,
col=c('skyblue','orange'))
per <- project_subway_on
per <- per[,2:3]
per <- head(per,5)
per$TotalVotes <- rowSums(per[, 1:2])
per1 <- project_subway_on1
per1 <- per1[,2:3]
per1 <- head(per1,5)
per1$TotalVotes <- rowSums(per[, 1:2])
per$승차비율 <- round((per$`승차총승객수`/per$TotalVotes)*100,2)
per$하차비율 <- round((per$`하차총승객수`/per$TotalVotes)*100,2)
per
per1$하차비율 <- round((per1$`하차총승객수`/per1$TotalVotes)*100,2)
per1$승차비율 <- round((per1$`승차총승객수`/per1$TotalVotes)*100,2)
per1
for (i in 1:length(per$`하차비율`)) {
text(0.7 + 1.2 * (i - 1), per$`승차총승객수`[i]/2, paste0(round(per$`승차비율`[i], 2), "%"))
text(0.7 + 1.2 * (i - 1), per$`승차총승객수`[i]+per$`하차총승객수`[i]/2, paste0(round(per$`하차비율`[i], 2), "%"))
}
out <- c()
for(i in 1:length(project_subway_out)){
topTemp1 <- apply(subset(project,역명 == project_subway_out[i] )[,4:5],2,sum)
out <- cbind(out,topTemp1)
}
colnames(out) <- project_subway_out
out
barplot(out,ylim=c(0,300000000),main="2020~202402 하차횟수가 높은 5개의 역의 정보",
col=c('orange','skyblue'),legend.text=c("하차총승객수","승차총승객수"))
for (i in 1:length(per$`승차비율`)) {
text(0.7 + 1.2 * (i - 1), per1$`하차총승객수`[i]/2, paste0(round(per1$`하차비율`[i], 2), "%"))
text(0.7 + 1.2 * (i - 1), per1$`하차총승객수`[i]+per1$`승차총승객수`[i]/2, paste0(round(per1$`승차비율`[i], 2), "%"))
}
PROJECT02[,5][is.na(PROJECT02[,5])] <- 0
#승차
projectsum <- sum(PROJECT01[,4]) #2020
projectsum2 <- sum(PROJECT02[,4]) #2021
projectsum3 <- sum(PROJECT03[,4]) #2022
projectsum4 <- sum(PROJECT04[,4])
projectsum5 <- sum(PROJECT05[,4])
projectsum6 <- sum(PROJECT06[,4])
projectsum7 <- sum(PROJECT07[,4])
projectsum8 <- sum(PROJECT08[,4])
projectsum9 <- sum(PROJECT09[,4])
projectsum10 <- sum(PROJECT10[,4])
projectsum11 <- sum(PROJECT11[,4])
projectsum12 <- sum(PROJECT12[,4])
projectsum13 <- sum(PROJECT13[,4])
projectsum14 <- sum(PROJECT14[,4])
projectsum15 <- sum(PROJECT15[,4]) ##2023
projectsum16 <- sum(PROJECT16[,4])
projectsum17 <- sum(PROJECT17[,4]) #2024
#하차
projectsum18 <- sum(PROJECT01[,5]) #2020
projectsum19 <- sum(PROJECT02[,5]) #2021
projectsum20 <- sum(PROJECT03[,5]) #2022
projectsum21 <- sum(PROJECT04[,5])
projectsum22 <- sum(PROJECT05[,5])
projectsum23 <- sum(PROJECT06[,5])
projectsum24 <- sum(PROJECT07[,5])
projectsum25 <- sum(PROJECT08[,5])
projectsum26 <- sum(PROJECT09[,5])
projectsum27 <- sum(PROJECT10[,5])
projectsum28 <- sum(PROJECT11[,5])
projectsum29 <- sum(PROJECT12[,5])
projectsum30 <- sum(PROJECT13[,5])
projectsum31 <- sum(PROJECT14[,5])
projectsum32 <- sum(PROJECT15[,5]) ##2023
projectsum33 <- sum(PROJECT16[,5])
projectsum34 <- sum(PROJECT17[,5]) #2024
projectsum19
#승차
sums2023 <- c(
sum(PROJECT04[,4]),
sum(PROJECT05[,4]),
sum(PROJECT06[,4]),
sum(PROJECT07[,4]),
sum(PROJECT08[,4]),
sum(PROJECT09[,4]),
sum(PROJECT10[,4]),
sum(PROJECT11[,4]),
sum(PROJECT12[,4]),
sum(PROJECT13[,4]),
sum(PROJECT14[,4]),
sum(PROJECT15[,4])
)
# 데이터프레임으로 변환
sum_df <- data.frame(Year = 2023, Sum = sums2023)
sum_df <- aggregate(Sum~Year,sum_df,sum)
sums2024 <- c(
sum(PROJECT16[,4]),
sum(PROJECT17[,4]))
sum_df2024 <- data.frame(Year = 2024, Sum = sums2024)
sum_df2024 <- aggregate(Sum~Year,sum_df2024,sum)
#하차
sums2023_out <- c(
sum(PROJECT04[,5]),
sum(PROJECT05[,5]),
sum(PROJECT06[,5]),
sum(PROJECT07[,5]),
sum(PROJECT08[,5]),
sum(PROJECT09[,5]),
sum(PROJECT10[,5]),
sum(PROJECT11[,5]),
sum(PROJECT12[,5]),
sum(PROJECT13[,5]),
sum(PROJECT14[,5]),
sum(PROJECT15[,5])
)
# 데이터프레임으로 변환
sum_df_out <- data.frame(Year = 2023, Sum = sums2023_out)
sum_df_out <- aggregate(Sum~Year,sum_df_out,sum)
sums2024_out <- c(
sum(PROJECT16[,5]),
sum(PROJECT17[,5]))
sum_df2024_out <- data.frame(Year = 2024, Sum = sums2024_out)
sum_df2024_out <- aggregate(Sum~Year,sum_df2024_out,sum)
par(family = 'AppleGothic',bg='white')
sum_data <- data.frame(Project = c("2020", "2021", "2022", "2023", "2024"),
Total = c(projectsum, projectsum2, projectsum3, sum_df$Sum, sum_df2024$Sum))
sum_data1 <- data.frame(Project = c("2020", "2021", "2022", "2023", "2024"),
Total = c(projectsum18, projectsum19, projectsum20, sum_df_out$Sum, sum_df2024_out$Sum))
sum_data1
# 꺾은선 그래프 그리기
plot(sum_data$Total, type='o',ylim=c(140000000,2800000000),col="darkblue", ylab="승/하차 승객수", xlab="연도", xaxt='n',
main = "2020~202402 지하철 승/하차 승객수")
axis(side=1, at=1:5, labels=sum_data$Project)
lines(sum_data1$Total,col="red",type="o")
for (i in 1:length(sum_data$Total)) {
text(1.05 + 0.95 * (i - 1), sum_data$`Total`[i]+60000000, format(sum_data$Total[i], big.mark = ","), col = "blue",cex=1.1)
text(1.05 + 0.95 * (i - 1), sum_data1$`Total`[i]-60000000, format(sum_data1$Total[i], big.mark = ","), col = "red",cex=1.1)
}
legend("topright", legend=c("승차총승객수", "하차총승객수"), fill=c("darkblue", "red"))
project$`역명`[project$역명 == "동대문역사문화공원(DDP)"] <- "DDP"
project$`역명`[project$역명 == "청량리(서울시립대입구)"] <- "청량리"
project$`역명`[project$역명 == "이촌(국립중앙박물관)"] <- "이촌"
project$`역명`[project$역명 == "경복궁(정부서울청사)"] <- "경복궁"
project$`역명`[project$역명 == "상봉(시외버스터미널)"] <- "상봉"
for (line_num in 1:9) {
line_name <- paste0(line_num, "호선")
project_line <- subset(project, 노선명 == line_name)[, c(3:5)]
rownames(project_line) <- NULL
project_line <- aggregate(.~역명, project_line, sum)
project_line <- arrange(project_line, desc(승차총승객수))
project_line <- head(project_line, 5)
project_line_1 <- subset(project, 노선명 == line_name)[, c(3:5)]
rownames(project_line_1) <- NULL
project_line_1 <- aggregate(.~역명, project_line_1, sum)
project_line_1 <- arrange(project_line_1, 승차총승객수)
project_line_1 <- head(project_line_1, 5)
station <- project_line[c(1:5), 1]
station_1 <- project_line_1[c(1:5), 1]
par(mfrow=c(1,2))
par(family="AppleGothic", bg='white')
plot(project_line$`승차총승객수`, type='o', ylim=c(0, 130000000), col="darkblue", ylab="승/하차 승객수", xlab="역명", xaxt='n',
main = paste("2020~202402 ", line_name, " 승/하차 승객수 (상위5개역)"))
axis(side=1, at=1:5, labels=station)
lines(project_line$`하차총승객수`, col="red", type="o")
legend("topright", legend=c("승차총승객수", "하차총승객수"), fill=c("darkblue", "red"))
for (i in 1:length(project_line$`역명`)) {
text(1.3 + 0.85 * (i - 1), project_line$`승차총승객수`[i] + 10000000, format(project_line$`승차총승객수`[i], big.mark = ","), col="blue",cex=1.1)
text(1.3 + 0.85 * (i - 1), project_line$`하차총승객수`[i] - 10000000, format(project_line$`하차총승객수`[i], big.mark = ","), col="red",cex=1.1)
}
plot(project_line_1$`승차총승객수`, type='o', ylim=c(0, 35000000), col="darkblue", ylab="승/하차 승객수", xlab="역명", xaxt='n',
main = paste("2020~202402 ", line_name, " 승/하차 승객수 (하위5개역)"))
axis(side=1, at=1:5, labels=station_1)
lines(project_line_1$`하차총승객수`, col="red", type="o")
legend("topright", legend=c("승차총승객수", "하차총승객수"), fill=c("darkblue", "red"))
for (i in 1:length(project_line$`역명`)) {
text(1.19 + 0.9 * (i - 1), project_line_1$`승차총승객수`[i] + 1500000, format(project_line_1$`승차총승객수`[i], big.mark = ","), col="blue",cex=1.1)
text(1.19 + 0.9 * (i - 1), project_line_1$`하차총승객수`[i] - 900000, format(project_line_1$`하차총승객수`[i], big.mark = ","), col="red",cex=1.1)
}
}
for (line_num in 1:9) {
line_name <- paste0(line_num, "호선")
project_line <- subset(project, 노선명 == line_name)[, c(3:5)]
rownames(project_line) <- NULL
project_line <- aggregate(.~역명, project_line, sum)
project_line <- arrange(project_line, desc(승차총승객수))
project_line <- head(project_line, 10)
project_line_1 <- subset(project, 노선명 == line_name)[, c(3:5)]
rownames(project_line_1) <- NULL
project_line_1 <- aggregate(.~역명, project_line_1, sum)
project_line_1 <- arrange(project_line_1, 승차총승객수)
project_line_1 <- head(project_line_1, 10)
total_passengers <- sum(project_line$`승차총승객수`) # 전체 승차총승객수 계산
project_line$percentages <- (project_line$`승차총승객수` / total_passengers) * 100 # 각 역별 비율 계산
total_passengers_1 <- sum(project_line_1$`승차총승객수`) # 전체 승차총승객수 계산
project_line_1$percentages <- (project_line_1$`승차총승객수` / total_passengers_1) * 100 # 각 역별 비율 계산
total_passengers_out <- sum(project_line$`하차총승객수`) # 전체 승차총승객수 계산
project_line$percentages_out <- (project_line$`하차총승객수` / total_passengers_out) * 100 # 각 역별 비율 계산
total_passengers_1_out <- sum(project_line_1$`하차총승객수`) # 전체 승차총승객수 계산
project_line_1$percentages_out <- (project_line_1$`하차총승객수` / total_passengers_1_out) * 100 # 각 역별 비율 계산
all_colors <- colors()
random_color <- sample(all_colors, 10, replace = FALSE)
station <- project_line[c(1:5), 1]
station_1 <- project_line_1[c(1:5), 1]
par(mfrow=c(2,2))
par(family="AppleGothic", bg='white')
pie3D(project_line$percentages, main = paste("2020~202402 ", line_name, " 승차 승객수 (상위10개역)"),
col= random_color,
labels = ifelse(project_line$percentages>5,paste(project_line$`역명`,paste0(round(project_line$percentages,2),"%"),sep = "\n"),project_line$`역명`),
labelcex = 0.9,
radius = 0.9,explode = 0.05)
pie3D(project_line$percentages_out, main = paste("2020~202402 ", line_name, " 하차 승객수 (상위10개역)"),
col= random_color,
labels = ifelse(project_line$percentages_out>5,paste(project_line$`역명`,paste0(round(project_line$percentages_out,2),"%"),sep = "\n"),project_line$`역명`),
labelcex = 0.9,
radius = 0.9,explode = 0.05)
pie3D(project_line_1$percentages, main = paste("2020~202402 ", line_name, " 승차 승객수 (하위10개역)"),
col= random_color,
labels = ifelse(project_line_1$percentages>5, paste(project_line_1$`역명`, paste0(round(project_line_1$percentages, 2), "%"), sep = "\n"),project_line_1$`역명`),
labelcex = 0.9,
radius = 0.9,explode = 0.05)
pie3D(project_line_1$percentages_out, main = paste("2020~202402 ", line_name, " 하차 승객수 (하위10개역)"),
col= random_color,
labels = ifelse(project_line_1$percentages_out>5,paste(project_line_1$`역명`,paste0(round(project_line_1$percentages_out,2),"%"),sep = "\n"),project_line_1$`역명`),
labelcex = 0.8,
radius = 0.9,explode = 0.05)
}
library(dplyr)
project_line <- subset(project, 노선명 == "중앙선")[, c(3:5)]
rownames(project_line) <- NULL
project_line <- aggregate(.~역명, project_line, sum)
project_line <- arrange(project_line, desc(승차총승객수))
project_line <- head(project_line, 6)
project_line_1 <- subset(project, 노선명 == "중앙선")[, c(3:5)]
rownames(project_line_1) <- NULL
project_line_1 <- aggregate(.~역명, project_line_1, sum)
project_line_1 <- arrange(project_line_1, 승차총승객수)
project_line_1 <- head(project_line_1, 6)
station <- project_line[c(1:6), 1]
station_1 <- project_line_1[c(1:6), 1]
par(mfrow=c(1,2))
par(family="AppleGothic", bg='white')
plot(project_line$`승차총승객수`, type='o', ylim=c(0, 40000000), col="darkblue", ylab="승/하차 승객수", xlab="역명", xaxt='n',
main = "2020~202402 중앙선 승/하차 승객수 (상위6개역)")
axis(side=1, at=1:6, labels=station)
lines(project_line$`하차총승객수`, col="red", type="o")
legend("topright", legend=c("승차총승객수", "하차총승객수"), fill=c("darkblue", "red"))
for (i in 1:length(project_line$`역명`)) {
text(1.3 + 0.89 * (i - 1), project_line$`승차총승객수`[i] + 2000000, format(project_line$`승차총승객수`[i], big.mark = ","), col="blue",cex=1.1)
text(1.3 + 0.89 * (i - 1), project_line$`하차총승객수`[i] - 2500000, format(project_line$`하차총승객수`[i], big.mark = ","), col="red",cex=1.1)
}
plot(project_line_1$`승차총승객수`, type='o', ylim=c(0, 1200000), col="darkblue", ylab="승/하차 승객수", xlab="역명", xaxt='n',
main ="2020~202402 중앙선 승/하차 승객수 (하위6개역)")
axis(side=1, at=1:6, labels=station_1)
lines(project_line_1$`하차총승객수`, col="red", type="o")
legend("topright", legend=c("승차총승객수", "하차총승객수"), fill=c("darkblue", "red"))
for (i in 1:length(project_line$`역명`)) {
text(1.2 + 0.91 * (i - 1), project_line_1$`승차총승객수`[i] + 50000, format(project_line_1$`승차총승객수`[i], big.mark = ","), col="blue",cex=1.1)
text(1.16 + 0.91 * (i - 1), project_line_1$`하차총승객수`[i] - 70000, format(project_line_1$`하차총승객수`[i], big.mark = ","), col="red",cex=1.1)
}
project_line <- subset(project, 노선명 == "중앙선")[, c(3:5)]
rownames(project_line) <- NULL
project_line <- aggregate(.~역명, project_line, sum)
project_line <- arrange(project_line, desc(승차총승객수))
project_line <- head(project_line, 10)
project_line_1 <- subset(project, 노선명 == "중앙선")[, c(3:5)]
rownames(project_line_1) <- NULL
project_line_1 <- aggregate(.~역명, project_line_1, sum)
project_line_1 <- arrange(project_line_1, 승차총승객수)
project_line_1 <- head(project_line_1, 10)
total_passengers <- sum(project_line$`승차총승객수`) # 전체 승차총승객수 계산
project_line$percentages <- (project_line$`승차총승객수` / total_passengers) * 100 # 각 역별 비율 계산
total_passengers_1 <- sum(project_line_1$`승차총승객수`) # 전체 승차총승객수 계산
project_line_1$percentages <- (project_line_1$`승차총승객수` / total_passengers_1) * 100 # 각 역별 비율 계산
total_passengers_out <- sum(project_line$`하차총승객수`) # 전체 승차총승객수 계산
project_line$percentages_out <- (project_line$`하차총승객수` / total_passengers_out) * 100 # 각 역별 비율 계산
total_passengers_1_out <- sum(project_line_1$`하차총승객수`) # 전체 승차총승객수 계산
project_line_1$percentages_out <- (project_line_1$`하차총승객수` / total_passengers_1_out) * 100 # 각 역별 비율 계산
all_colors <- colors()
random_color <- sample(all_colors, 10, replace = FALSE)
station <- project_line[c(1:10), 1]
station_1 <- project_line_1[c(1:10), 1]
par(mfrow=c(2,2))
par(family="AppleGothic", bg='white')
pie3D(project_line$percentages, main = "2020~202402 중앙선 승차 승객수 (상위10개역)",
col= random_color,
labels = ifelse(project_line$percentages>5,paste(project_line$`역명`,paste0(round(project_line$percentages,2),"%"),sep = "\n"),project_line$`역명`),
labelcex = 0.9,
radius = 0.9,explode = 0.05)
pie3D(project_line$percentages_out, main = "2020~202402 중앙선 하차 승객수 (상위10개역)",
col= random_color,
labels = ifelse(project_line$percentages_out>5,paste(project_line$`역명`,paste0(round(project_line$percentages_out,2),"%"),sep = "\n"),project_line$`역명`),
labelcex = 0.9,
radius = 0.9,explode = 0.05)
pie3D(project_line_1$percentages, main = "2020~202402 중앙선 승차 승객수 (하위10개역)",
col= random_color,
labels = ifelse(project_line_1$percentages>5, paste(project_line_1$`역명`, paste0(round(project_line_1$percentages, 2), "%"), sep = "\n"),project_line_1$`역명`),
labelcex = 0.9,
radius = 0.9,explode = 0.05)
pie3D(project_line_1$percentages_out, main = "2020~202402 중앙선 하차 승객수 (하위10개역)",
col= random_color,
labels = ifelse(project_line_1$percentages_out>5,paste(project_line_1$`역명`,paste0(round(project_line_1$percentages_out,2),"%"),sep = "\n"),project_line_1$`역명`),
labelcex = 0.9,
radius = 0.9,explode = 0.05)
project_line_1
project_line